/// 回合内事件
#[derive(Debug, PartialOrd, Ord, PartialEq, Eq)]
pub enum Round {
    /// 回合开始前，最先的事件
    Begin,

    /// 回合开始时，第二个事件
    Begining,

    /// 判定阶段开始前
    BeforeJudge,

    /// 判定阶段，即展示判定牌时
    ///
    /// 此时可以进行修改判定牌
    Judging,

    /// 判定结束
    ///
    /// 此时判定牌已经确认
    Judge,

    /// 触发判定生效的各种效果
    Judged,

    /// 判定阶段结束后
    AfterJudge,

    /// 摸牌阶段开始前
    BeforeDraw,

    /// 摸牌阶段
    Draw,

    /// 摸牌阶段结束后
    AfterDraw,

    /// 出牌阶段开始前
    BeforePlay,

    /// 出牌阶段
    ///
    /// 触发各种主动事件
    ///
    ///
    Play,

    /// 出牌阶段结束后
    AfterPlay,

    /// 弃牌阶段开始前
    BeforeDiscard,

    /// 弃牌阶段
    Discard,

    /// 弃牌阶段结束后
    AfterDiscard,

    /// 回合结束时，倒数第二个事件
    Ending,

    /// 回合结束后，最后触发
    End,
}

impl Into<super::Event> for Round {
    fn into(self) -> super::Event {
        super::Event::Round(self)
    }
}

#[cfg(test)]
mod test {

    #[test]
    fn test_cmp() {}
}
